<?php

namespace Controller;

session_start();

// Require Controllers
require_once 'Controller/NavController.php';
require_once 'Controller/LoginController.php';
require_once 'Controller/RegisterController.php';
require_once 'Controller/FileUploadController.php';
require_once 'Controller/DeleteController.php';

// Require Models
require_once 'Model/dbsettings.php';
require_once 'Model/Database.php';
require_once 'Model/User.php';
require_once 'Model/File.php';
require_once 'Model/UserHandler.php';
require_once 'Model/LoginHandler.php';
require_once 'Model/RegisterHandler.php';
require_once 'Model/FileUploadHandler.php';
require_once 'Model/DeleteHandler.php';

// Require Views
require_once 'View/Validation.php';
require_once 'View/PageView.php';
require_once 'View/LoginView.php';	
require_once 'View/RegisterView.php';
require_once 'View/FileUploadView.php';
require_once 'View/DeleteView.php';

class MasterController{	

	/**
	 * Startar körningen av sidan och de funktioner som alltid skall köras
	 * @return String innehåller HTML för sidan
	 */
	public static function doControll()
	{

		$title = "reGolf";

		// Skapar ett nytt databasobjekt
		$Database = new \Model\Database();

		// Skapar en anslutning mot databasen
		$Database->Connect();	

		$NavController = new \Controller\NavController($Database);
		$LoginController = new \Controller\LoginController();		
		$PageView = new \View\PageView();

		// Anropar logincontroller
		$login = $LoginController->DoControll($Database);

		// Anropar NavController för att hämta ut vad som skall stå i body
		$body = $NavController->DoControll();
						
		//Stänger databaskopplingen.
		$Database->Close();	

		// Formaterar min html
		$html = $PageView->GetHTML($title, $login, $body);

		return $html;
	}	
}

echo MasterController::doControll();